A computer system may have several embedded processors. To program the embedded processors, an amount of source code may be written for each processor. The C programming language is often used. The C source code for each processor is compiled by a C compiler into a corresponding amount of object code. The amounts of object code are then converted by a linker into corresponding amounts of executable code. The amount of executable code for a first of the embedded processors is loaded into program memory of the first embedded processor, and the amount of executable code for a second of the embedded processors is loaded into program memory of a second embedded processor, and so forth. After loading, each processor executes its respective amount of executable code.
It may be desired that some memory of the computer system only be accessible and usable by only one of the processors, whereas another part of the memory should be accessible and usable by all of the processors. A header file is therefore typically written to accompany the source code. The header file declares arrays of memory resources, variables and functions, and contains an indication of which parts of code should be able to access each of the declared identifiers. For example, if a memory array is to be referred to by a symbol name, and if two parts of the code are be able to access the same memory array, then the same symbol name set forth in the header file will be used in the two parts of code to refer to the same memory array. If another memory array is only to be accessible by one of the parts of the code, then a symbol representing that memory array will only be used in the appropriate part of the code. There are several ways of preparing the code to accomplish this, but a header file is typically used to record which parts of the code are to be able to use which declared identifier. The content of the header file is managed by the programmer.